package jmu.cultural_tourism.dao;

import jmu.cultural_tourism.entity.CityInfo;
import org.apache.ibatis.annotations.Param;
import org.springframework.data.domain.Pageable;

import java.util.List;

/**
 * 城市文旅表(CityInfo)表数据库访问层
 *
 * @author makejava
 * @since 2025-07-20 16:17:27
 */
public interface CityInfoDao {

    /*通过ID查询单条数据*/
    CityInfo queryById(Integer cityId);

    /*带条件分页查询*/
    List<CityInfo> queryAllByLimit(@Param("cityInfo") CityInfo cityInfo, @Param("pageable") Pageable pageable);

    /*无条件分页查询所有城市信息*/
    List<CityInfo> queryAllCity(@Param("pageable") Pageable pageable);

    /*统计带条件的总条数*/
    long count(CityInfo cityInfo);

    /*统计所有城市信息的总条数（新增方法）*/
    long countAllCity();

    /*新增数据*/
    int insert(CityInfo cityInfo);

    /*批量新增数据（MyBatis原生foreach方法）*/
    int insertBatch(@Param("entities") List<CityInfo> entities);

    /*批量新增或按主键更新数据*/
    int insertOrUpdateBatch(@Param("entities") List<CityInfo> entities);

    /*修改数据*/
    int update(CityInfo cityInfo);

    /**
     * 通过主键删除数据
     *
     * @param cityId 主键
     * @return 影响行数
     */
    int deleteById(Integer cityId);

}